home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’95 / Reminder Manager / Danger.c < prev    next >
C/C++ Source or Header  |  1995-06-24  |  2KB  |  56 lines

  1. #include "Danger.h"
  2.  
  3. // Turning off the following two defines is the only bit of this
  4. // code that's changed since 1989...
  5. //#define      TRUE   1
  6. //#define      FALSE  0
  7. #define      NIL    0
  8.  
  9. #define      I_Don_t_Bother  1
  10. #define      I_Try_Anyway  2
  11. #define      I_x  3
  12.  
  13.  
  14. int A_Danger()
  15. {
  16. AlertTHndl   AlertResHandle;
  17. Rect   tempRect;
  18. short   itemHit;
  19.  
  20.     AlertResHandle = (AlertTHndl)GetResource('ALRT', 5);
  21.     HLock((Handle)AlertResHandle);
  22.     
  23.     /* Get the Alert's box... */
  24.     tempRect.left = (*AlertResHandle)->boundsRect.left;
  25.     tempRect.right = (*AlertResHandle)->boundsRect.right;
  26.     tempRect.top = (*AlertResHandle)->boundsRect.top;
  27.     tempRect.bottom = (*AlertResHandle)->boundsRect.bottom;
  28.     
  29.     /* Center it 1/3rd down the screen */
  30.     tempRect.top = ((qd.screenBits.bounds.bottom - qd.screenBits.bounds.top) 
  31.                     - (tempRect.bottom - tempRect.top)) / 3;
  32.     tempRect.left = ((qd.screenBits.bounds.right - qd.screenBits.bounds.left) 
  33.                     - (tempRect.right - tempRect.left)) / 2;
  34.     tempRect.bottom = tempRect.top 
  35.                       + ((*AlertResHandle)->boundsRect.bottom 
  36.                       - (*AlertResHandle)->boundsRect.top);
  37.     tempRect.right = tempRect.left 
  38.                      + ((*AlertResHandle)->boundsRect.right 
  39.                      - (*AlertResHandle)->boundsRect.left);
  40.  
  41.     /* And set it to be in the right place */
  42.     (*AlertResHandle)->boundsRect.left = tempRect.left;
  43.     (*AlertResHandle)->boundsRect.right = tempRect.right;
  44.     (*AlertResHandle)->boundsRect.top = tempRect.top;
  45.     (*AlertResHandle)->boundsRect.bottom = tempRect.bottom;
  46.      
  47.     /* Let the OS handle the Alert and wait for a result to be returned */
  48.     itemHit = StopAlert(5, NIL);
  49.     HUnlock((Handle)AlertResHandle);
  50.      
  51.     /* Decide which button got pressed and return the appropriate message. */
  52.     if (I_Don_t_Bother == itemHit) return(FALSE);
  53.     if (I_Try_Anyway == itemHit) return(TRUE);
  54. }
  55.  
  56.